This invention relates to electronic devices, and more particularly, to electronic devices such as cellular telephones that have data pushed to them from remote server(s).
Electronic devices such as cellular telephones have wireless capabilities. These wireless capabilities may be used to support voice and data traffic. Certain operations, such as operations involved in monitoring cellular telephone control channels for indicators of incoming calls can be handled by a type of integrated circuit called a baseband processor. The baseband processor is used to handle communications-related operations. Complex operations, such as those required when implementing graphics-intensive functions for a user of a smart phone, may be implemented by general purpose microprocessors. Because these general purpose microprocessors are used in handling functions related to implementing applications, they are sometimes referred to as applications processors.
An applications processor may be used to implement functions for a user such as media playback functions, email display functions, and web browsing functions. When a user of a cellular telephone is not actively using the telephone, the applications processor is not needed. The applications processor may therefore be shut down temporarily to conserve power.
Advanced communications services such as push email services require the presence of a persistent data connection between the cellular telephone and the internet. This allows the cellular telephone to receive packets of data from push email service(s) that inform the cellular telephone of the presence of new incoming email via this persistent network connection.
Cellular networks typically monitor the data connections of the cellular telephones that are using the network. If no data has been sent over a given data connection for a set period—for example thirty minutes, the cellular network assumes the data connection is not needed. The cellular network therefore tears down the data connection, so that the interne protocol (IP) address associated with the data connection and other system resources can be made available to other users. Although this approach helps the cellular network manage its bandwidth, it causes problems for users of push email services as the notification path is no longer available. In particular, a user of a cellular telephone whose data connection has been torn down by the cellular network will not receive new-mail-available packets from the push email service to alert the user of incoming email.
To prevent cellular networks from prematurely terminating the data connection between the cellular telephone and the cellular telephone, some conventional cellular telephones use their applications processors to periodically wake and send data packets to a remote server. This data transmission activity serves to prevent the cellular network from tearing down the data connection and thereby makes it possible for the cellular telephone to properly receive new-mail-available packets. Use of the applications processor to send these data packets (which can be empty, as meaningful data is not required to keep the cellular network from tearing down the connection) can, however, shorten battery life as the applications processor's boot-up and shut-down overhead can be very large. In situations in which the applications processor has been placed in a sleep mode, the process of waking up the applications processor to send the (optionally empty) data packets to the remote server may consume undesirably large amounts of power.
A flow chart of conventional steps involved in maintaining active data connections between cellular telephones and cellular telephone networks so that the cellular telephones may receive push email or notifications are shown in FIG. 2. Operations of the type shown in FIG. 2 may be performed by cellular telephones that contain baseband processors and applications processors. To conserve power, the applications processor in a given cellular telephone may be placed in a sleep state when not in use.
As an example, assume that the operations of FIG. 2 are intended for a cellular telephone network that would deactivate a data connection if there is inactivity thirty (30) minutes after the last acknowledgement or packet is transacted with the cellular telephone. Other cellular networks may have different fixed or variable inactivity time-outs.
At step 36, the cellular telephone determines whether 29.5 minutes (assuming a thirty minute timeout) have elapsed since the last data transmission to/from the cellular telephone network has been sent/received. If 29.5 minutes has not elapsed, an internal timer is incremented and, as indicated schematically by line 38 in FIG. 2, waiting continues at step 36. The timer used to wake the applications processor is typically implemented using system power management circuitry.
If, at step 36, it is determined that 29.5 minutes has elapsed since the last data transmission, operations proceed to step 40. At step 40, the applications processor is awakened. For example, if the timer is implemented in power management circuitry, the power management circuitry awakes the applications processor.
At step 42, the applications processor sends (via the baseband processor) an (optionally empty) data packet to a remote server. Because the empty data packet is recognized by the cellular network as active data traffic, the cellular network resets its inactivity timer and does not deactivate the data connection between the cellular telephone and the network. This data connection will therefore remain available for the cellular telephone to use in receiving notifications from a remote push email service. When email is available for the user of the cellular telephone, an email server may send a packet to the cellular telephone that indicates to the cellular telephone that the applications processor should wake up to check for email or other push data.
After the applications processor has sent the empty data packet to the remote server at step 42, the applications processor may be returned to its sleep state at step 44 to conserve power.
As indicated by line 46, the process of FIG. 2 may be repeated continuously.
While the FIG. 2 arrangement may be satisfactory for maintaining the persistent data connections that are needed to receive push email, the need to repeatedly activate the applications processor to send empty data packets to the remote server wastes power. This is because the applications processor generally consumes a significantly larger amount of power than the baseband processor.
It would therefore be desirable to be able to provide electronic devices that more efficiently handle duties associated with supporting data services such as push email.